package com.zwy.ubts.utils;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * @Author Yang Gang
 * @Description:
 * @Date Created in 18:18 2022/2/23
 */
public class Md5 {
    /**
     * 对明文字符串进行 MD5 加密
     *
     * @param source 传入的明文字符串
     * @return 加密结果
     */
    public static String md5(String source) {
        // 1.判断 source 是否有效
        try {
            // 3.获取 MessageDigest 对象
            String algorithm = "md5";
            MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
            byte[] input = source.getBytes();// 4.获取明文字符串对应的字节数组
            byte[] output = messageDigest.digest(input);// 5.执行加密
            int signum = 1;// 6.创建 BigInteger 对象
            BigInteger bigInteger = new BigInteger(signum, output);
            int radix = 16;// 7.按照 16 进制将 bigInteger 的值转换为字符串
            String encoded = bigInteger.toString(radix).toUpperCase();
            return encoded;
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }
}
